1. Technical Field
The invention relates to a method of synchronizing a local data storage on a wireless computing device with a remote data storage on a remote server by transmitting both data objects and actions that have occurred to those data objects.
2. Description of the Related Art
Soon after computers were invented, people began connecting them together. Connections among multiple computers enabled scarce resources such as printers and memory devices to be shared. At first, connections between computers were established with wires, but, as technology advanced and a need developed for more flexibility, wireless communication methods were created and deployed. Early wireless communication techniques involved periodically connecting a mobile device to a network access point via a cable or via infrared signals between the mobile device and the network access point. These techniques require either attaching wires to the mobile device or placing an infrared port on the mobile device within the limited range of a corresponding infrared port at the network access point. Basically, early wireless communication techniques enabled mobile devices to communicate with each other or other computers only within a limited physical range. The issue of limited range was addressed in the nineties when computing devices were designed to take advantage of new wireless communication networks, e.g., cellular telephone systems, that were beginning to appear around the United States and the world.
By the late nineties, wireless networks spanned much of the world, allowing mobile computing devices to communicate from almost any location with each other and with remote computers hosting centralized data storage applications, or “data servers.” For example, using these communication networks, sales people, using wireless-modem equipped, laptop computers, can keep in touch with their company's centralized inventory and ordering systems. In addition, mobile devices such as personal digital assistants (PDAs) and sophisticated cellular telephones enable users to access the Internet, a world-wide collection of computers that collectively store vast resources of data. Some mobile devices are also able to access the public telephone network (PTN) and/or the Internet to communicate with each other.
Using current mobile computing devices, users are able to connect to mail servers, web servers, on-line banking and other server-based, or “backend,” applications located on remote data servers. Many companies, sensing a potential advantage afforded by providing access from mobile devices to their systems or servers, seek to extend their business into the wireless world by offering workers and customers remote access to both user interfaces and backend systems, thus providing users the ability to perform transactions through their mobile devices.
Of course, the new wireless technologies have their share of problems. For example, the small size of many mobile computing devices only provides enough room for small input and output areas and a small memory for data and applications. These problems mean that data entry on a mobile device can be difficult and the applications that run on the mobile device must be small. Other problems include the high cost of maintaining a wireless connection and the problems associated with ensuring consistent, accurate and current data on a mobile device.
A current solution to the problem of a limited area for input and output involves the use of handwriting recognition software. However, handwriting recognition software is typically quite large and thus the mobile device runs into the memory problem. Another solution is to provide a small keyboard. However, such keyboards are typically difficult to use. Another solution involves the use of screen icons, each of which represents a desired action, and a stylus, which is used to touch a particular icon on the display of the mobile device. When the stylus touches a particular icon, the action associated with the icon is initiated. Many PDAs have adopted this icon/stylus approach because it seems to offer the best balance between case of input and the need to fit the applications that control input into a small memory.
As mentioned above, most mobile devices have limited memory. The memory capacity of a mobile device not only creates a need for small applications to run on the mobile device but also limits the size of any data storage employed in conjunction with such an application. One answer to this problem relating to data storage is to place the database upon a second computer such as a data server and periodically connect the two computers for synchronization.
Of course, if one particular data source, such as a product database, stored on a remote computer, is shared among multiple users, issues relating to data consistency, or “data synchronization,” arise. Data synchronization is the process ensuring the data in one database is identical to the corresponding data in another database so that any user of the data is aware of any changes made to the data by other users. For example, if a company has one baseball in stock and a first sales person sells that baseball, a second sales person needs to be aware that the company no longer has a baseball to sell. In order for the second sales person to know of the inventory update, at least two things must happen: (1) the first sales person must update the server to reflect the new number of baseballs; and (2) the data used by the second sales person, if local to the sales person's mobile device, must be updated to reflect the updated information on the server.
Another issue related to database access that has implications for synchronization is that mobile access can often be location dependent or intermittent. A user may not have access to a network connection, or an established connection can be lost unexpectedly in the middle of a transaction. In addition, the cost of a wireless connection is typically higher than a wired connection and, if a user needs to be constantly connected, the cost associated with maintaining the connection can potentially exceed the additional profits generated by the wireless business solution.